/**
 * 截取字符串
 * @param {String} str  需要截取的字符串;
 * @param {String} suffix 添加后缀(非必要),默认为"...";
 * @param {Number} length 需要截取的长度,字符串长度不足返回本身;
 * @returns 返回截取后的字符串;
 */
export const substr = (str, length = 10, suffix = '...') => {
  return str.length > length ? str.slice(0, length) + suffix : str
}

/**
 * 得到字符串的字节长度;
 * @return 返回字符串的字节长度(eg:"一二12"的字节长度是6);
 */
export const getLengthByte = function (str) {
  var text = str.replace(/[^\x00-\xff]/g, '**')
  return text.length
}

/**
 * 按字节长度截取字符串,并添加后缀.
 * @param length 需要截取的长度,字符串长度不足返回本身;
 * @param suffix 添加后缀(非必要),默认为"...";
 * @return 返回截取后的字符串;
 * @requires getLength;
 */
export const substrByte = function (str, length, suffix = '...') {
  var tempStr = str
  if (getLengthByte(str) > length) {
    var i = 0
    for (var z = 0; z < length; z++) {
      if (tempStr.charCodeAt(z) > 255) {
        i = i + 2
      } else {
        i = i + 1
      }
      if (i >= length) {
        tempStr = tempStr.slice(0, z + 1) + suffix
        break
      }
    }
    return tempStr
  } else {
    return str + ''
  }
}
